這個閱讀心得系列文採用Asabeneh編排的30 Days of Python教學內容。
我是一位剛轉職不到半年的的前端工程師,有天在社群上看到了這個學習清單,又有人提到做這個清單可以拿來寫鐵人賽,就決定來實作看看了。另一方面,從大綱中可以看到,會學怎麼做API,這樣我能做更廣前端應用。一些計算機科學的MOOC會用Python來教,比如UCB CS61A、MIT 6.006,學了之後就能看這些課程。
這篇文章我會盡量用JavaScript(簡稱JS)來做借鏡或對比;這個想法啟發自TypeScript(簡稱TS)官網的Get Started,提供了for New Programmer、for JS Programmer、for Java/C# Programmer等觀點的角度來學習TS,這篇文,就會是用主要使用JavaScript的前端開發者角度來看學習Python。
還有一件事,這系列採取這個文件系統的觀點,這不會是一篇教學文(Tutorial),讀者可參閱Asabeneh的教學原文,也不會是參照(Reference),這會用官方Docs連結的方式出現在系列文中,不會是導引(How-to guides),沒有主要要解決的題目。這是會系列討論(Discussion),是一個JS使用者閱讀Python教學文的心得。
照著教學去官網下載我的OS(Window 11)的安裝檔,並安裝後執行:
python --version
Command Prompt及PowerShell皆印出
Python 3.10.6
這樣就確認Python有安裝成功
但在Git Bash同樣的指令得到沒有安裝的回覆,Stackoverflow這篇提供了解法:
py --version
用起來就像瀏覽器的Console,或是Node.js的REPL
CommandPrompt、PowerShell:
python
Git Bash:
py -i
要離開的話則是打:exit()
[註]原文中有提到安裝文字編輯器(e.g. VSCode),這邊就不贅述了
在Python裡不像JS,要用{}
做出scope,而是用縮排來判斷的,所以正確的縮排在Python中是極度關鍵的。
在Python中使用#
字號,而非//
來做單行註解,多行註解使用"""
,而非/* */
。
Number、String與JS無太大差異。
包含整數(integer),負數、零,和正數(-3, -2, -1, 0, 1, 2, 3...),或是浮點數(float);有小數點的數字(-3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5...),以及complex(1 + j)。
文字,可以用單引號''
或雙引號""
包住標示:
'Hello'
"World!"
首字要大寫,JavaScript裡則是全小寫:
True # Not true in JS
False # Not false in JS
是一個有順序的資料型別,這個可以想成JS的array
:
[0, 'one', "two", 3.5, True, False]
小提示:JavaScript的
array
實際是object
的一種
是一個無順序,鍵值配對(key value pair)的資料型別,可以想成JS的`object``;key用單引號或雙引號都可以:
{
"first_name": "John",
'last_name': 'Doe',
'age': 30,
}
像List是一個有順序的資料集,但不能被更改的:
("Taipei", "New Taipei", "Taichung", "Kaohsiung") # cities
像List和Tuple但沒有順序,而且同一個值只會有一個,跟JS的Set
類似:
{2, 2, 3, 3, 5} # 宣告後會是{2, 3, 5}
要知道一個變數是上面提到的哪種資料型別,可以用type(<data>)
,會得到該<data>
的型別,就像JS的typeof <data>
:
type(10)
# <class 'int'>
type(3.14)
# <class 'float'>
type(1 + 3j)
# <class 'complec'>
Python檔案的副檔名是.py
,只要在CLI打上python <filename>.py
,就可以執行那個檔案。